In computing, multi-tenancy refers to a software architecture in which a single software instance of a computer program runs on a server and serves multiple tenants. A tenant, in this multi-tenant architecture, refers to a group of users who, with tenant-specific privileges, have access to this software instance. In the multi-tenant architecture, a software application may provide every tenant a dedicated share of a software instance, including application data, configuration, user management, tenant-specific functionality and non-functional properties.
In a conventional multi-tenant system, data from multiple tenants are stored on the same server. However, tenants are separate and isolated from one another via a partition mechanism that prevents the data from migrating from one tenant to another. Generally, tenants of a conventional multi-tenant system do not share data with other tenants and have no access to other tenants' data.